Scientists and engineers often employ geophysical surveys for exploration, archeological studies, and engineering projects. Geophysical surveys can provide information about underground structures, including formation boundaries, rock types, and the presence or absence of fluid reservoirs. Such information greatly aids searches for water, geothermal reservoirs, and mineral deposits such as hydrocarbons and ores. Oil companies in particular often invest in extensive seismic and electromagnetic surveys to select sites for exploratory oil wells.
Geophysical surveys can be performed on land or in water. As indicated in FIG. 1, an energy source 102 near the region of interest 104 generates waves 106 that propagate into the region of interest and reflect from internal features such as bed boundaries. Eventually, the reflected waves 108 reach an array of receivers 110 on or near the surface 112 or in a borehole. A recording system 114 captures the received signals for storage and processing. The process is repeated with many different source positions and optionally with different receiver positions. Although various methods exist for converting the received wave signals into an image of the subsurface structure, the most popular such techniques employ finite difference wave field modeling, a process that propagates waves forward or backward in time using discrete time steps and fast approximations of wave function derivatives. With small enough time steps and accurate enough approximations, the finite difference wave field modeling process provides an efficient, high fidelity solution. Nevertheless, the finite difference modeling process imposes a substantial computational demand.
Many efforts have been made to satisfy the computation demands of the finite difference wave field modeling process. Many combined hardware-software solutions have been implemented in the attempt to maximize runtime efficiency. In addition to exploiting different parallelization strategies offered by different hardware systems, the software is often customized to incorporate different earth models, different wave function approximations, and different propagation strategies. These factors lead to a severe fragmentation of the code base, making it difficult to maintain and re-use applications. In many cases, it may be difficult to even compare the results of different applications due to slightly different underlying algorithms or hardware implementations.
It should be understood, however, that the specific embodiments given in the drawings and detailed description below do not limit the disclosure. On the contrary, they provide the foundation for one of ordinary skill to discern the alternative forms, equivalents, and other modifications that are encompassed in the scope of the appended claims.